#ifndef _COLLEAGE_H_
#define _COLLEAGE_H_
#include <string>

class Mediator;

class Colleage{
public:
	Colleage(Mediator* mediator);
	~Colleage();

	virtual std::string GetClassName() = 0;
protected:
	Colleage();
protected:
	Mediator* _mediator;
};

class ConcreteColleage1:public Colleage{
public:
	ConcreteColleage1(Mediator* mediator);
	~ConcreteColleage1();

	void Send(std::string message);
	void Notify(std::string message);

	std::string GetClassName();
protected:
	ConcreteColleage1();
private:
	
};

class ConcreteColleage2:public Colleage{
public:
	ConcreteColleage2(Mediator* mediator);
	~ConcreteColleage2();

	void Send(std::string message);
	void Notify(std::string message);

	std::string GetClassName();
protected:
	ConcreteColleage2();
private:
};
#endif //~_COLLEAGE_H_